/*
 * @(#)IAtnaClient.java
 * Date 2013-11-02
 * Version 1.0
 * Author Jim Horner
 * Copyright (c)2012
 */


package us.hornerscorners.lamppost.atna.client;

import java.util.List;

import us.hornerscorners.lamppost.atna.client.constant.LoggingActor;

import us.hornerscorners.lamppost.model.audit.AuditMessage;


/**
 * Interface description
 *
 *
 * @version        v1.0, 2013-11-02
 * @author         Jim Horner
 */
public interface IAtnaClient {

    /**
     * Method description
     *
     *
     * @return
     */
    public abstract AtnaContext getAtnaContext();

    /**
     * Method description
     *
     *
     * @return
     */
    public boolean isEnabled();

    /**
     * Method description
     *
     *
     * @param actors
     */
    public abstract void sendApplicationStart(List<LoggingActor> actors);

    /**
     * Method description
     *
     *
     * @param actor
     */
    public abstract void sendApplicationStart(LoggingActor actor);

    /**
     * Method description
     *
     *
     * @param actors
     */
    public abstract void sendApplicationStop(List<LoggingActor> actors);

    /**
     * Method description
     *
     *
     * @param actor
     */
    public abstract void sendApplicationStop(LoggingActor actor);

    /**
     * Method description
     *
     *
     * @param auditMessage
     */
    public abstract void sendAuditEvent(AuditMessage auditMessage);

    /**
     * Method description
     *
     *
     * @param auditMessages
     */
    public abstract void sendAuditEvents(List<AuditMessage> auditMessages);

    /**
     * Method description
     *
     */
    public abstract void shutdown();

    /**
     * Method description
     *
     */
    public abstract void startup();
}
